#ifndef EGG_OPAQUEPIPELINE_H
#define EGG_OPAQUEPIPELINE_H

#include "RenderPipeline.h"
#include "SpotLitEffect.h"
#include "PointLitEffect.h"
#include "DirectionLitEffect.h"

namespace egg{

    class OpaquePipeline : public RenderPipeline{
    public:
        OpaquePipeline();
        ~OpaquePipeline();
    public:
        void renderEffect(RenderContext& _context);
        void renderNormal(RenderContext& _context,RenderQueue& _queue);
    protected:
        void renderBasePass(RenderContext& _context,DrawableList& _list);
        void renderExtraPass(RenderContext& _context,DrawableList& _list);
    protected:
        uint32 mPassID;
        LitEffect* mLitEffects[LT_Max];
    };

}

#endif